코드 악취
“악취”는 안좋은 코드에 대한 비유이다. 켄트 벡이 제안.
Refactoring: Improving the design of existing code에서 제안하는 악취 목록.
악취 목록이 Mysterious name과 Duplicated code로 시작하는 이유는 어쩌면 이 두 가지가 가장 중요하기 때문일 수도 있겠다. Test-driven development: by example에서 켄트 벡은 리팩토링을 “의도 드러내기와 중복 제거”로 정의한다.
- Mysterious name
- Duplicated code
- Long function
- Long parameter list
- Global data
- Mutable data
- Divergent change
- Shotgun surgery
- Feature envy
- Data clumps
- Primitive obsession
- Repeated switches
- Loops
- Lazy element
- Speculative generality
- Temporary field
- Message chains
- Middle man
- Insider trading (code smell)
- Large class
- Alternative classes with different interfaces
- Data class
- Refused bequest
- Comments
See also
- Bad smells in test: 테스트 케이스에서 흔히 발견되는 악취들